#include "tcpserver.h"
#include "./ui_tcpserver.h"
#include "mytcpserver.h"
#include<QFile>
#include<QByteArray>
#include<QDebug>
#include<QMessageBox>
#include<QHostAddress>
#include<QHostAddress>

TcpServer::TcpServer(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::TcpServer)
{
    ui->setupUi(this);

    //加载配置文件
    loadConfig();

    //监听IP+端口
    // qDebug()<<"监听IP+端口";
    if(MyTcpServer::getInstance().listen(QHostAddress(m_strIP),m_usPort)){
        qDebug()<<"linsten IP+Port success";
    }else {
        qDebug()<<"linsten IP+Port failed";
    }
}

TcpServer::~TcpServer()
{
    delete ui;
}


void TcpServer::loadConfig()
{
    qDebug()<<"TcpServer::loadConfig :"<<Qt::endl;

    //实现 读取配置文件，并加载，QFile 加载文件
    //定义一个 file 对象
    QFile file(":/server.config");
    //以只读的方式进行打开
    if(file.open(QIODevice::ReadOnly)){
        //文件读取成功
        // 文件读取
        QByteArray baData=file.readAll();
        //字节数据转为 字符串数据,数据转为 Char*
        QString strData=baData.toStdString().c_str();
        //文件关闭
        file.close();

        QStringList strList=strData.split("\r\n");

        m_strIP=strList.at(0);
        m_usPort=strList.at(1).toUShort();

        qDebug()<<"IP :"<< m_strIP<<Qt::endl;
        qDebug()<<"PORT :"<< m_usPort<<Qt::endl;


    }else{
        //文件读取失败
        QMessageBox::critical(this,"open cofig","open config failed");
    }

}
